package cn.wen233.core.mapper;

import cn.wen233.basic.model.Namespace;
import cn.wen233.basic.model.Service;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Service mapper
 *
 * @author wenei
 * @date 2021-10-23 16:59
 */
@Repository
public interface ServiceMapper {

    Service selectServiceById(String id);

    Service selectServiceByNamespaceIdAndServiceId(String namespaceId, String serviceId);

    /**
     * 查询命名空间下的所有服务
     * @param namespaceId 命名空间id
     * @return 服务列表
     */
    List<Service> selectAllService(String namespaceId);

    /**
     * 查询命名空间下的该分组的所有服务
     * @param namespaceId 命名空间id
     * @param groupName 分组
     * @return 服务列表
     */
    List<Service> selectAllByNamespaceIdAndGroup(@Param("namespaceId") String namespaceId, @Param("groupName") String groupName);

    void insertService(Service service);

    void updateService(Service service);

    void deleteService(String id);
}
